HTMLify
script.js
Views: 15 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | function getHistory(){ return document.getElementById('history-value').innerText; } function printHistory(num){ document.getElementById("history-value").innerText=num; } function getOutput(){ return document.getElementById("output-value").innerText; } function printOutput(num){ if(num==""){ document.getElementById("output-value").innerText=num; }else{ document.getElementById("output-value").innerText=getFormattedNumber(num); } } function getFormattedNumber(num){ if(num=="-"){ return ""; } var n = Number(num); var value = n.toLocaleString("en"); return value; } function reverseNumberFormat(num){ return Number(num.replace(/,/g,'')); } var operator = document.getElementsByClassName("operator"); for(var i=0;i<operator.length;i++){ operator[i].addEventListener('click',function(){ if(this.id=="clear"){ printHistory(""); printOutput(""); } else if(this.id=="backspace"){ var output = reverseNumberFormat(getOutput()).toString(); if(output){ output = output.substr(0,output.length-1); printOutput(output); } } else{ var output = getOutput(); var history = getHistory(); if(output=="" && history!=""){ if(isNaN(history[history.length-1])){ history = history.substr(0,history.length-1); } } if(output!="" || history!=""){ output = output=="" ? output : reverseNumberFormat(output); history = history+output; if(this.id=="="){ var result=eval(history); printOutput(result); printHistory(""); } else if(this.id=="%"){ var n = reverseNumberFormat(getOutput()); var percent = n / 100; printOutput(percent.toFixed(4)); } else{ history=history+this.id; printHistory(history); printOutput(""); } } } }); } var number = document.getElementsByClassName("number"); for(var i=0;i<number.length;i++){ number[i].addEventListener('click',function(){ var output=reverseNumberFormat(getOutput()); //if output is a number if(output!=NaN){ output=output+this.id; printOutput(output); } }); } let checkbox = document.querySelector('input[name=theme]'); checkbox.addEventListener('change',function(){ if(this.checked){ document.documentElement.setAttribute('data-theme','dark'); }else{ document.documentElement.setAttribute('data-theme','light'); } }) |